MongoDB তে Index তৈরি করা (createIndex())

Java Technologies - জাভা মঙ্গোডিবি (Java MongoDB) - Indexing এবং MongoDB Performance
139

MongoDB তে Index তৈরি করা একটি গুরুত্বপূর্ণ কার্যক্রম, যা আপনার ডাটাবেসের কোয়েরি পারফরম্যান্স উন্নত করতে সহায়ক। Index এর মাধ্যমে MongoDB ডেটা দ্রুত খুঁজে পেতে সক্ষম হয়, যার ফলে কোয়েরি এর পারফরম্যান্স অনেক উন্নত হয়। বিশেষ করে যদি ডাটাবেসে বড় আকারের ডেটা থাকে, তবে সঠিকভাবে ইনডেক্স তৈরি করা খুবই প্রয়োজনীয়।

MongoDB তে Index তৈরি করার জন্য createIndex() মেথড ব্যবহার করা হয়। এটি MongoCollection এর একটি মেথড, যার মাধ্যমে আপনি collection-এ ইনডেক্স তৈরি করতে পারবেন।

Index তৈরি করার প্রক্রিয়া:

MongoDB তে বিভিন্ন ধরনের ইনডেক্স তৈরি করা যায়, যেমন:

  1. Single Field Index: একটি একক ফিল্ডের ওপর ইনডেক্স তৈরি করা।
  2. Compound Index: একাধিক ফিল্ডের ওপর ইনডেক্স তৈরি করা।
  3. Unique Index: একটি ফিল্ডের ওপর ইনডেক্স তৈরি করা যা একই মান পুনরাবৃত্তি হতে দেবে না।
  4. Text Index: টেক্সট ডেটা অনুসন্ধান করতে সাহায্য করে।

এখানে createIndex() মেথডের ব্যবহার দেখানো হবে।

MongoDB তে Index তৈরি করার উদাহরণ (Java)

Step 1: MongoDB Java Driver সেটআপ

প্রথমে আপনাকে MongoDB Java ড্রাইভার সেটআপ করতে হবে। Maven অথবা Gradle ব্যবহার করে ড্রাইভার যোগ করতে পারেন।

Maven দিয়ে MongoDB Java Driver ইনস্টলেশন:

<dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>mongodb-driver</artifactId>
    <version>4.3.3</version>  <!-- Latest version -->
</dependency>

Step 2: Index তৈরি করা

MongoDB তে Index তৈরি করতে createIndex() মেথড ব্যবহার করা হয়। নিচে Single Field Index এবং Compound Index তৈরির উদাহরণ দেওয়া হল।

Single Field Index তৈরি করা:

import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoCollection;
import org.bson.Document;
import com.mongodb.client.model.IndexOptions;

public class CreateIndexExample {
    public static void main(String[] args) {
        // MongoDB ক্লায়েন্ট তৈরি
        MongoClient mongoClient = new MongoClient("localhost", 27017);

        // ডাটাবেস নির্বাচন
        MongoDatabase database = mongoClient.getDatabase("testdb");

        // collection নির্বাচন
        MongoCollection<Document> collection = database.getCollection("users");

        // Single field index তৈরি (যেমন: "name" ফিল্ডের ওপর ইনডেক্স)
        collection.createIndex(new Document("name", 1));  // 1 এর মান নির্দেশ করে অ্যাসেন্ডিং ইনডেক্স

        System.out.println("Single field index created on 'name'");

        // MongoClient বন্ধ করা
        mongoClient.close();
    }
}

Explanation:

  • new Document("name", 1) এটি "name" ফিল্ডের ওপর একটি অ্যাসেন্ডিং ইনডেক্স তৈরি করে। 1 মানে অ্যাসেন্ডিং এবং -1 মানে ডিসেন্ডিং।
  • createIndex() মেথডে একটি Document অবজেক্ট পাস করা হয়, যা ফিল্ডের নাম এবং ইনডেক্সের ধরনের (অ্যাসেন্ডিং বা ডিসেন্ডিং) নির্দেশ করে।

Compound Index তৈরি করা:

Compound Index হল একটি ইনডেক্স যা একাধিক ফিল্ডের ওপর তৈরি হয়। উদাহরণস্বরূপ, যদি আপনি "name" এবং "age" ফিল্ডের ওপর ইনডেক্স তৈরি করতে চান, তাহলে compound index ব্যবহার করা হয়।

import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoCollection;
import org.bson.Document;

public class CompoundIndexExample {
    public static void main(String[] args) {
        // MongoDB ক্লায়েন্ট তৈরি
        MongoClient mongoClient = new MongoClient("localhost", 27017);

        // ডাটাবেস নির্বাচন
        MongoDatabase database = mongoClient.getDatabase("testdb");

        // collection নির্বাচন
        MongoCollection<Document> collection = database.getCollection("users");

        // Compound index তৈরি (যেমন: "name" এবং "age" ফিল্ডের ওপর ইনডেক্স)
        collection.createIndex(new Document("name", 1).append("age", -1));

        System.out.println("Compound index created on 'name' and 'age'");

        // MongoClient বন্ধ করা
        mongoClient.close();
    }
}

Explanation:

  • এখানে, createIndex() মেথডে একটি compound index তৈরি করা হয়েছে, যা "name" ফিল্ডের জন্য অ্যাসেন্ডিং (1) এবং "age" ফিল্ডের জন্য ডিসেন্ডিং (-1) ইনডেক্স তৈরি করে।
  • append() মেথড দিয়ে একাধিক ফিল্ড যুক্ত করা হয়েছে।

Unique Index তৈরি করা:

MongoDB তে Unique Index তৈরি করা হয় যাতে প্রতিটি ইনডেক্স ভ্যালু অবশ্যই ইউনিক হয়। এটি একই মানের ডেটা ইনসার্ট হতে বাধা দেয়।

import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoCollection;
import org.bson.Document;
import com.mongodb.client.model.IndexOptions;

public class UniqueIndexExample {
    public static void main(String[] args) {
        // MongoDB ক্লায়েন্ট তৈরি
        MongoClient mongoClient = new MongoClient("localhost", 27017);

        // ডাটাবেস নির্বাচন
        MongoDatabase database = mongoClient.getDatabase("testdb");

        // collection নির্বাচন
        MongoCollection<Document> collection = database.getCollection("users");

        // Unique index তৈরি (যেমন: "email" ফিল্ডের জন্য ইউনিক ইনডেক্স)
        IndexOptions indexOptions = new IndexOptions().unique(true);
        collection.createIndex(new Document("email", 1), indexOptions);

        System.out.println("Unique index created on 'email'");

        // MongoClient বন্ধ করা
        mongoClient.close();
    }
}

Explanation:

  • IndexOptions().unique(true) ব্যবহার করে "email" ফিল্ডের জন্য একটি ইউনিক ইনডেক্স তৈরি করা হয়েছে।
  • এর মাধ্যমে নিশ্চিত করা হয় যে "email" ফিল্ডে একই মান দুইবার ইনসার্ট করা যাবে না।

Text Index তৈরি করা:

MongoDB তে Text Index ব্যবহার করা হয় যখন আপনি text search করতে চান।

import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoCollection;
import org.bson.Document;

public class TextIndexExample {
    public static void main(String[] args) {
        // MongoDB ক্লায়েন্ট তৈরি
        MongoClient mongoClient = new MongoClient("localhost", 27017);

        // ডাটাবেস নির্বাচন
        MongoDatabase database = mongoClient.getDatabase("testdb");

        // collection নির্বাচন
        MongoCollection<Document> collection = database.getCollection("articles");

        // Text index তৈরি (যেমন: "content" ফিল্ডের জন্য ইনডেক্স)
        collection.createIndex(new Document("content", "text"));

        System.out.println("Text index created on 'content'");

        // MongoClient বন্ধ করা
        mongoClient.close();
    }
}

Explanation:

  • createIndex() মেথডে "text" প্রদান করে আমরা text index তৈরি করেছি। এটি MongoDB তে টেক্সট অনুসন্ধান পরিচালনা করতে সাহায্য করে।

MongoDB তে Index তৈরি করা পারফরম্যান্স বাড়ানোর জন্য একটি গুরুত্বপূর্ণ প্রক্রিয়া। আপনি single field index, compound index, unique index, এবং text index তৈরি করতে পারেন, যা আপনার MongoDB ডাটাবেসের query performance অনেক উন্নত করে। Java MongoDB ড্রাইভার ব্যবহার করে আপনি MongoDB collection-এ সহজেই ইনডেক্স তৈরি এবং পরিচালনা করতে পারবেন।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...